# 使用官方的 固定 Rust版本 镜像作为构建环境
FROM rust:bookworm as builder
# 设置工作目录
WORKDIR /app
# 将 Cargo.toml 和 Cargo.lock 复制到工作目录中
COPY . .
# 预构建依赖项
RUN cargo fetch
# 构建发布版本
RUN cargo build --release
# 创建一个精简的镜像
FROM debian:bookworm-slim
# 设置必要的环境变量
ENV LOG_LEVEL=info
ENV PORT=10086
# 设置工作目录
WORKDIR /app
# 安装必要的库
RUN apt-get update && apt-get install -y pkg-config libssl-dev && rm -rf /var/lib/apt/lists/*
# 复制构建阶段的可执行文件到这个镜像
COPY --from=builder /app/target/release/JetbrainsLicenseProject ./JetbrainsLicenseProject
# 复制资源文件夹到运行时环境
COPY --from=builder /app/assets /app/assets
# 复制代理文件夹到运行时环境
COPY --from=builder /app/external /app/external
# 暴露端口
EXPOSE 10086
# 运行可执行文件
CMD ["./JetbrainsLicenseProject"]
